/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package MPPersistencia;


import Concepto.Curso;
import Utilidades.ManejadorBaseDatos;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;

/**
 *
 * @author josedavo
 */
public class MPCurso {
static Connection con;
static ManejadorBaseDatos mbd=ManejadorBaseDatos.getInstancia();

public static void registrarAsignatura(Curso curso) throws SQLException, Exception {
    mbd.conectar();
    con=mbd.getConexion();
     if (con == null ) {
          throw new SQLException("no hay conexion" );
     }
     PreparedStatement pst = null;//hacer nula la consulata.....
     try {
          pst = con.prepareStatement("Insert Into Curso values(?,?)");
          pst.setInt(1,curso.getVar_codigo_curso());
          pst.setString(2,curso.getVar_nombre_curso());
          
          
          pst.executeUpdate();
    }finally {
        if (pst != null) {
             pst.close();
        }
   }
}
public static Curso consultarCurso(int cod) throws SQLException, Exception {
    mbd.conectar();
    con=mbd.getConexion();
   String codcurso=cod +"";
      if (codcurso==null) {
          throw new SQLException("No hay elemento clave de la clase Curso");
     }
         ResultSet rs = null;
         PreparedStatement pst = null;
         Curso curso = null;
     try {
         pst = con.prepareStatement("select * from Curso where var_codigo_curso = ? ");
         pst.setInt(1, cod);

         rs = pst.executeQuery();
         while(rs.next()) {

             curso = Curso.load(rs);
         }
    } finally {
         if (rs != null) {
            rs.close();
         }
         if (pst != null) {
           pst.close();
         }
          return curso;
    }
}


public static boolean existecurso(int cod) throws SQLException, Exception {
    mbd.conectar();
    con=mbd.getConexion();
      String codcurso=cod +"";
      if (codcurso==null) {
         
          throw new SQLException("No hay elemento clave de la clase Curso");
     }
         ResultSet rs = null;
         PreparedStatement pst = null;
         boolean curso = false;
     try {
         pst = con.prepareStatement("select * from Curso where var_codigo_curso = ?");
         pst.setInt(1, cod);

         rs = pst.executeQuery();
         while(rs.next()) {

             curso = true;
         }
    } finally {
         if (rs != null) {
            rs.close();
         }
         if (pst != null) {
           pst.close();
         }
          return curso;
    }
}
public static List<Curso> listarCurso() throws SQLException, Exception {
      mbd.conectar();
        con=mbd.getConexion();
        ResultSet rs = null;
     PreparedStatement pst = null;
     List<Curso> listacurso = new LinkedList();
     try {
        pst = con.prepareStatement("select * from Curso ");
        rs = pst.executeQuery();
        while(rs.next()) {
           listacurso.add(Curso.load(rs));
        }
    } finally {
        if (rs != null) {
           rs.close();
       }
        if (pst != null) {
          pst.close();
       }
  }
    return listacurso;
    }
//public static  call Ano();
//lista años de las matriculas

    public static List<Curso> listarEstudiantecurso(int codcurs) throws SQLException, Exception {
      mbd.conectar();
        con=mbd.getConexion();
        ResultSet rs = null;
     PreparedStatement pst = null;
     List<Curso> listaestudiante = new LinkedList();
     try {
        pst = con.prepareStatement("select * from Curso c, Matricula m, Estudiante e where  m.var_id_estudiante=e.codEstudiante and c.codCurso = m.var_id_curso and e.codEstudiante='" + codcurs+ "' ");
        rs = pst.executeQuery();
        while(rs.next()) {
           listaestudiante.add(Curso.load(rs));
        }
    } finally {
        if (rs != null) {
           rs.close();
       }
        if (pst != null) {
          pst.close();
       }
  }
    return listaestudiante;
}
    
    public static List<String> listyears () throws SQLException, Exception {
     String obtneryears="";
    mbd.conectar();
    con=mbd.getConexion();
    PreparedStatement pst =null;
    ResultSet rs=null;
    List<String> ys = new LinkedList();
   try {
     pst = con.prepareStatement("select year(var_fecha_matricula) from matricula "
             + "group by var_fecha_matricula");
     rs = pst.executeQuery();
     while (rs.next()){
     obtneryears =rs.getString(1);
     ys.add(obtneryears);
     }
  } finally {
        if (rs != null) {
           rs.close();
       }
        if (pst != null) {
          pst.close();
       }
  }
     return ys;
}
}




